home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / CIncludes / MC68000Test.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-18  |  3.1 KB  |  95 lines  |  [TEXT/MPS ]

  1. /************************************************************
  2.  
  3. Created: Thursday, October 15, 1989 at 11:32 AM
  4.     MC68000Test.h
  5.     C Interface to routines to test to see if they are running on a MC68000 Processor
  6.  
  7.     Copyright Apple Computer, Inc. 1991
  8.     All rights reserved
  9.     
  10.     941212    rjd        added #include <Types.h> for default type definitions
  11.  
  12. ************************************************************/
  13.  
  14. #ifndef __MC68000Test__
  15. #define __MC68000Test__
  16.  
  17. #include    <Types.h>
  18.  
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22.  
  23. /*
  24. The following routines are provided to the outside caller to handle checking to see if
  25. we are runing on the “proper” processor:
  26.  
  27. • To just do the check for the MC68000...
  28.  
  29.             Boolean onMC68000(void);
  30.             
  31. • To do the check for MC68000 for MPW tools and to abort with an error message to stderr
  32.     if we're on a MC68000...
  33.  
  34.             void abortToolOnMC68000(short exitCode);
  35.             
  36. • To do the check for MC68000 for MPW tools or applications and to abort with an alert
  37.     dialog if we're on a MC68000...
  38.     
  39.             void abortOnMC68000(void);
  40.  
  41. If the machine is an MC68000, then abortToolOnMC68000() and abortOnMC68000() generate the
  42. following message (appropriately formatted):
  43.  
  44.     “Sorry!  This program assumes an MC68020, MC68030, or MC68040 processor.  It cannot be
  45.      run on your MC68000 machine.”
  46.  
  47. There is a possible error condition where the processor cannot be determined using the
  48. SysEnvirons() system trap (on systems older than 4.1).  In that case the following message
  49. is generated:
  50.  
  51.     “Sorry! I cannot determine what processor you are running on!  Sinc this program assumes
  52.      you are running on an MC68020, MC68030, or MC68040 I am going to assume you have an
  53.      MC68000 so it cannot be run on your machine.”
  54.  
  55. Roughly, the cose of using abortToolOnMC68000() is about 750 bytes and abortOnMC68000()
  56. is about 1000 bytes.  By contrast, onMC68000(), which doesn't really do much of anything
  57. costs only about 100 bytes.
  58.  
  59. Note: these routines live in their own private segment, MC68000Test.  The caller might
  60. want to do an UnloadSeg() on return since these routines would normally only be called
  61. once.
  62. */
  63.  
  64. extern Boolean onMC68000(void);
  65.     /*
  66.     This routine returns true if we are currently running on an MC68000 and false otherwise.
  67.     It is provided for convenience for those callers who wish to take some more appropriate
  68.     actions based on the processor (other than just aborting with a canned error message).
  69.     */
  70.  
  71.  
  72. extern void abortToolOnMC68000(short exitCode);
  73.     /*
  74.     This routine aborts a MPW Shell tool if it's running on an MC68000 processor.  It is
  75.     assumed that we are being called by an MPW Shell tool.  It writes a message to stderr and
  76.     aborts the tool if we are on a MC68000.  The tool exit status code is specified by the
  77.     caller (in exitCode).  If 0 is specified, 1 will be used.
  78.     
  79.     If we are NOT on a MC68000, the routine simply returns to allow running of the tool.
  80.     */
  81.  
  82.  
  83. extern void abortOnMC68000(void);
  84.     /*
  85.     This routine aborts the calling program if it's running on an MC68000 processor.  The
  86.     caller can be either an MPW Shell tool OR a standard Mac application.  It displays a
  87.     message in an alert dialog and aborts if we are on a MC68000.  
  88.     */
  89.  
  90. #ifdef __cplusplus
  91. }
  92. #endif
  93.  
  94. #endif
  95.